package br.cefetrn.booknet.administracao.acoes;

import java.util.ArrayList;
import java.util.Collection;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import br.cefetrn.booknet.administracao.dominio.SalvarLivro;
import br.cefetrn.booknet.infraestrutura.dominio.DominioNegocio;
import br.cefetrn.booknet.infraestrutura.dominio.vo.Assunto;
import br.cefetrn.booknet.infraestrutura.dominio.vo.Autor;
import br.cefetrn.booknet.infraestrutura.dominio.vo.Editora;
import br.cefetrn.booknet.infraestrutura.dominio.vo.Livro;
/**
 * <p></p>
 * @author Kellyson
 * @since 21/06/2007
 */
public class SalvarLivroAcao extends Acao {

	@Override
	public String delegar(HttpServletRequest umaRequisicao,	HttpServletResponse umaResposta) {
		
		Livro livro = new Livro();
		
		/* Recuperando a lista de assuntos. */ 
		String[] codassuntos = umaRequisicao.getParameterValues("codassunto");
		Collection<Assunto> assunto = new ArrayList<Assunto>();
		for(int totalDeAssunto = 0; totalDeAssunto<codassuntos.length; totalDeAssunto++){
			Assunto novo = new Assunto();
			novo.setCodigo(Integer.parseInt(codassuntos[totalDeAssunto]));
			assunto.add(novo);
		}		
		livro.setAssuntos(assunto);
		
		/* Recuperando a lista de autores */
		String[] codautores = umaRequisicao.getParameterValues("codautores");
		Collection<Autor> autores = new ArrayList<Autor>();
		for(int totalDeAutores = 0; totalDeAutores<codautores.length; totalDeAutores++){
			Autor novo = new Autor();
			novo.setCodigo(Integer.parseInt(codautores[totalDeAutores]));
			autores.add(novo);
		}	
		livro.setAutores(autores);
		
		/*Recuperando a editora do livro*/
		Editora editora = new Editora();
		editora.setCodigo(Integer.parseInt(umaRequisicao.getParameter("codeditora")));
		
		//TODO falta livro.setItemRequisicao() e livro.setExemplares()
						
		livro.setTitulo(umaRequisicao.getParameter("titulo"));
		livro.setAnoPublicacao(Integer.parseInt(umaRequisicao.getParameter("anopublicacao")));
		
		String codlivro = umaRequisicao.getParameter("codigo");
		   if(codlivro == null || codlivro == "")
			    livro.setCodigo(-1);
		   livro.setCodigo(Integer.parseInt(codlivro));
		   
		livro.setISBN(umaRequisicao.getParameter("isbn"));
		
		SalvarLivro salvar = new SalvarLivro();
		
		salvar = executar(salvar);
		
		if(salvar.getStatus() == DominioNegocio.SUCESSO){
			umaRequisicao.setAttribute("msg", salvar.getMensagem());
			return "cadastroLivro.booknet";
			
		}else {
			return "erro.jsp";
		}
	}

}
